package com.sz.common.core.system.service;

import com.sz.common.core.system.entity.SysConfig;

import java.util.List;

/**
 * Function: SysConfigService <br>
 * Author: Charles <br>
 * Date: 2016-11-01 13:31:00
 */
public interface SysConfigService {
    /**
     * @param key          --key
     * @param defaultValue --缺省值
     * @return --value
     */
    String getProperty(String key, String defaultValue);

    /**
     * @param catalog      --catalog
     * @param key          --key
     * @param defaultValue --缺省值
     * @return --value
     */
    String getProperty(String catalog, String key, String defaultValue);

    /**
     * @param key
     * @param value
     */
    void setProperty(String key, String value);

    /**
     * @param domainId --域Id
     * @param catalog  --分类
     * @param key      --key
     * @param value    --值
     */
    void setProperty(int domainId, String catalog, String key, String value);

    /**
     * @param domainId --域Id
     * @return --分类
     */
    List<String> getCatalog(int domainId);

    /**
     * @param domainId --域Id
     * @param catalog  --分类
     * @return --配置项
     */
    List<SysConfig> getProperties(int domainId, String catalog);

    /**
     * @param domainId --域Id
     * @return --配置项
     */
    List<SysConfig> getProperties(int domainId);

    /**
     * @param key --key name
     */
    void removeProperty(String key);
}
